The present invention relates generally to the field of operating system (OS) maintenance and service, and more particularly to improved diagnosis of operating system or application software crashes.
Operating system (OS) crashes can result in significant monetary or operational losses in enterprise businesses and financial institutions. Operational losses may include the loss of all application services, data services, and the entire delivery chain of products and/or services provided by a business. When an OS or an application crash occurs, diagnostic data is needed to help identify the root cause of the problem, and to help find a solution. Technical support personnel and developers use stack-trace files to manually determine where the exception occurred for the failing thread/process. A stack-trace, in computing, is a report of the active stack frames at a certain point during the execution of a computer program. In other words, it is the list of function calls that the current thread/process was executing when an exception occurs. A thread is an execution stream within a process with its own stack, local variables, and program counter. There may be one or more execution streams in a process. Typically, technical support personnel search for similar known problems in a prior problems database for applicable solutions and developers try to manually determine the faulting function name and offset of the exception by analyzing registers, memory content, checking for reasonable outcomes during execution, and backtracking the stack-trace while reading the source code for each function in the stack-trace. A register is a small amount of high speed memory available as part of a Central Processing Unit (CPU) or a hardware-thread of a CPU, designed to speed up its operations by providing quick access to commonly used values.